"""
数据库初始化脚本
"""
import os
import sys

# 添加项目根目录到Python路径
sys.path.append(os.path.dirname(os.path.abspath(__file__)))

from app.databases.database import create_async_tables
from app.databases.models import Base
from app.core.config import settings
import asyncio


async def init_database():
    """初始化数据库"""
    print("正在初始化数据库...")
    print(f"数据库URL: {settings.database_async_url}")
    
    try:
        # 创建所有表
        await create_async_tables()
        print("✅ 数据库表创建成功")
        
        # 显示创建的表
        print("\n已创建的表:")
        for table_name in Base.metadata.tables.keys():
            print(f"  - {table_name}")
            
    except Exception as e:
        print(f"❌ 数据库初始化失败: {e}")
        return False
    
    return True


if __name__ == "__main__":
    success = asyncio.run(init_database())
    if success:
        print("\n🎉 数据库初始化完成！")
    else:
        print("\n💥 数据库初始化失败！")
        sys.exit(1)
